﻿using System.Linq;

namespace Puppy.ActorDb.Query
{
    /// <summary>
    /// 提供对 Actor 执行查询的功能
    /// </summary>
    public interface IActorQueryable : IQueryable
    {
        
    }

    /// <summary>
    /// 提供了对已知数据类型的 Actor 进行查询的功能
    /// </summary>
    /// <typeparam name="TEntity">
    /// 数据源中的数据类型
    /// <para>该类型参数是协变的，也就是说既可以使用指定的类型，也可以使用派生程度更高的任何类型</para>
    /// </typeparam>
    public interface IActorQueryable<TEntity> :
        IActorQueryable,
        IQueryable<TEntity>
    {

    }

    /// <summary>
    /// 表示排序操作的结果
    /// </summary>
    /// <typeparam name="TEntity">
    /// 数据源中的数据类型
    /// <para>该类型参数是协变的，也就是说既可以使用指定的类型，也可以使用派生程度更高的任何类型</para>
    /// </typeparam>
    public interface IOrderedActorQueryable<TEntity> :
        IActorQueryable<TEntity>,
        IOrderedQueryable<TEntity>
    {

    }
}
